This document relates to executing applications locally and remotely.
A user of a user device can interact with an application that is executed on a server remote from the user device using a remote display protocol. The remote display protocol can be used to transfer the display data generated by the application for presentation on the user device and to transfer data identifying user input events from the user device to the application. During execution and based on user input events from the user device, the application can generate updates to the display data, and the remote display protocol can be used to transfer the updated display data to the remote client.
A virtual machine (VM) is a software-based abstraction of a physical computer system. A VM is executed on a physical computer through the use of virtualization software typically referred to as a “hypervisor.” A physical computer system, also referred to as a host machine, can execute one or more VMs. The hypervisor is software that is logically interposed between and interfaces with a VM and a physical computer system. In general, each VM is configured to execute an operating system, referred to herein as a guest OS, and applications.